package com.agileboot.admin.config;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitMqConfig {
    /**
     * 1.声明注册direct模式交换机
     * -参数1：交换机的名字
     * -参数2：持久化-持久化的一般是元数据-如:交换机名称
     * -参数3：是否自动删除
     * @return
     */
    @Bean
    public DirectExchange directExchange(){
        return new DirectExchange("direct_sync_data_es",true,false);
    }
    //2.声明队列-用来存储消息
    @Bean
    public Queue syncMedicineToES(){
        return new Queue("sync_medicine_queue");
    }
    //3.完成绑定关系（队列和交换机完成绑定关系）
    @Bean
    public Binding syncBinding(){
        return BindingBuilder.bind(syncMedicineToES()).to(directExchange()).with("sync:data");
    }
}
